#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int N =  3e6 + 10;
int a[N] , s[N];
using PII = pair<int,int>;
vector<int> alls;
vector<PII> add,query;

int find(int x)
{
    int l = 0 , r = alls.size()-1;
    while(l < r)
    {
        int mid = l + (r-l+1 >> 1);
        if(alls[mid] <= x) l = mid;
        else r = mid-1;
    }
    return r+1;
}

int main()
{
    int n , m;
    cin >> n >> m;
    for(int i = 0 ; i < n ; ++i)
    {
        int x , c;
        cin >> x >> c;
        add.push_back({x,c});
        alls.push_back(x);
    }
    for(int i = 0 ; i < m ; ++i)
    {
        int l , r;
        cin >> l >> r;
        query.push_back({l,r});
        alls.push_back(l);
        alls.push_back(r);
    }
    sort(alls.begin() , alls.end());
    alls.erase(unique(alls.begin(),alls.end()),alls.end());

    for(int i = 0 ; i < add.size() ; ++i)
    {
        int x = find(add[i].first);
        a[x] += add[i].second;
    }
    for(int i = 1 ; i <= alls.size() ; ++i) s[i] = a[i] + s[i-1];

    for(int i = 0 ; i < query.size() ; ++i)
    {
        int l = find(query[i].first) , r = find(query[i].second);
        printf("%d\n",s[r] - s[l-1]);
    }
    return 0;
}